package com.wanger.swa.config.dataSourceInstance;

import com.alibaba.fastjson2.JSON;
import com.wanger.swc.config.dataInstance.DataInstanceService;
import com.wanger.swc.config.dataInstance.model.DataInstanceType;
import com.wanger.swc.exception.BusEx;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

/**
 * @Author: wanger
 * @Date: 2025/3/11 9:48
 * @Description: json内容格式验证与转换
 */
@Slf4j
@Component
public class JsonDataInstance implements DataInstanceService {
    /**
     * 获取数据实例类型
     *
     * @return 类型
     */
    @Override
    public DataInstanceType getType() {
        return DataInstanceType.JSON;
    }

    /**
     * 验证数据格式合法性
     *
     * @param content 要验证的数据内容
     */
    @Override
    public void verify(String content) {
        BusEx busEx = BusEx.create("json内容格式错误！");
        try {
            if (!JSON.isValid(content)) throw busEx;
        } catch (Exception e) {
            throw busEx;
        }
    }

    /**
     * 将数据转换为json数据
     *
     * @param content 原始数据
     * @return 转换后的数据
     */
    @Override
    public Object getJsonData(String content) {
        return JSON.parse(content);
    }
}
